// 包声明，主包，表明这是一个可独立运行的程序
package main

import (
	"fmt"
	"fyne.io/fyne/v2/app"
	"fyne.io/fyne/v2/container"
	"fyne.io/fyne/v2/widget"
)

func openTwoWindows() {
	// 创建一个新的 fyne 应用程序实例
	a := app.New()
	// 基于创建的应用程序实例创建一个新窗口，并设置窗口标题为 "Gofer gogogo"
	w1 := a.NewWindow("windows 1")
	w2 := a.NewWindow("windows 2")
	// 设置窗口的内容为一个新的标签控件，其显示文本为 "Gofer gogogo!!!!"
	w1.SetContent(container.NewVBox(widget.NewLabel("window1.1 Test")))
	w1.SetContent(container.NewVBox(widget.NewLabel("window1.2 Test")))
	w2.SetContent(container.NewHBox(widget.NewLabel("window2.1 Test")))
	w2.SetContent(container.NewHBox(widget.NewLabel("window2.2 Test")))
	// 显示窗口并启动应用程序的主事件循环
	w1.Show()
	w2.Show()
	a.Run()
	// 在窗口关闭后，打印 "close!"
	fmt.Println("close!")
}

// 点击一个窗口中的按钮，打开另外一个窗口
func openWindowFromBotton() {
	a := app.New()
	w1 := a.NewWindow("firstWindow")
	btn := widget.NewButton("点击打开新窗口", func() {
		w2 := a.NewWindow("twoWindow")
		w2.SetContent(widget.NewLabel("I am window two"))
		w2.Show()
	})

	w1.SetContent(btn)
	w1.Show()
	a.Run()
}

// main 函数，程序的入口点
func main() {
	//openTwoWindows()
	openWindowFromBotton()
}
